Haskell এ Tuples এর সাথে কাজ এবং Pairing Elements
Tuples হলো Haskell-এর একটি ডেটা স্ট্রাকচার, যা একাধিক মান (values) ধারণ করতে সক্ষম, যেগুলি এক বা একাধিক টাইপের হতে পারে। এটি একটি অর্ডারড ডেটা স্ট্রাকচার, যেখানে প্রতিটি উপাদান নির্দিষ্ট অবস্থানে থাকে এবং এটি সাধারণত যুক্ত হতে পারে বিভিন্ন ডেটা টাইপের।
Pairing elements বলতে বোঝানো হয় একাধিক মানকে একসঙ্গে জোড়া (pair) আকারে সাজানো। সাধারণত, Tuple এ দুটি উপাদানকে একত্রিত করা হয়, যা Haskell-এ একটি Pair হিসেবে পরিচিত।
1. Tuples কি?
Tuples একটি কনটেইনার বা ডেটা স্ট্রাকচার যা একাধিক মান ধারণ করতে পারে। Haskell এ, একটি Tuple দুইটি, তিনটি, বা তার বেশি উপাদান ধারণ করতে পারে। Haskell এ একটি Tuple সাধারণত () (প্যারেনথিসিস) দিয়ে পরিবেষ্টিত হয় এবং এর মধ্যে উপাদানগুলো কমা দিয়ে আলাদা করা হয়।
উদাহরণ:
Tuple with two elements (Pair):
pair :: (Int, String) pair = (5, "Hello")এখানে,
pairএকটি Tuple যেটি একটিIntএবং একটিStringধারণ করে। Tuple টি{ 5, "Hello" }এর মতো হবে।Tuple with three elements:
triple :: (Int, String, Bool) triple = (5, "Hello", True)এখানে,
tripleএকটি Tuple যেটি একটিInt, একটিString, এবং একটিBoolধারণ করে।Tuple with four or more elements:
quadruple :: (Int, String, Bool, Double) quadruple = (5, "Hello", True, 3.14)Tuple এর মধ্যে যতগুলো উপাদান থাকতে পারে, ততগুলো টাইপ মিশ্রিত হতে পারে।
2. Pairing Elements (Pairing with Tuples)
Pairing বা pairing elements বলতে বোঝানো হয় দুটি ভিন্ন ধরনের উপাদানকে একটি Tuple আকারে একত্রিত করা। এটি সাধারণত দুইটি ভিন্ন ডেটা টাইপের মানকে একত্রিত করার জন্য ব্যবহার করা হয়। Haskell এ Pair বা দুটি উপাদানকে একটি Tuple আকারে একত্রিত করার জন্য এটি ব্যবহৃত হয়।
2.1. Creating a Pair
যদি দুটি মানকে একত্রিত করতে চান, আপনি একটি Tuple ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে দুটি ভিন্ন ডেটা টাইপের মান একটি Tuple আকারে একত্রিত করা হয়েছে:
pairExample :: (Int, String)
pairExample = (1, "Hello")এখানে, pairExample একটি pair যেটি একটি Int এবং একটি String ধারণ করে।
2.2. Accessing Elements of a Pair
একটি Tuple বা Pair এর উপাদানগুলি অ্যাক্সেস করতে, Haskell এ pattern matching ব্যবহার করা হয়।
firstElement :: (Int, String) -> Int
firstElement (x, _) = x
secondElement :: (Int, String) -> String
secondElement (_, y) = yএখানে:
firstElementফাংশনটি Tuple এর প্রথম উপাদানকে ফেরত দেয়।secondElementফাংশনটি Tuple এর দ্বিতীয় উপাদানকে ফেরত দেয়।
2.3. Swapping Elements of a Pair
এটি একটি সাধারণ প্রয়োগ যেখানে Tuple এর প্রথম এবং দ্বিতীয় উপাদান দুটি জায়গায় বদলানো হচ্ছে।
swapPair :: (a, b) -> (b, a)
swapPair (x, y) = (y, x)এখানে swapPair ফাংশনটি একটি Pair নিয়ে এসে প্রথম এবং দ্বিতীয় উপাদানগুলিকে বদলায় এবং একটি নতুন Tuple ফিরিয়ে দেয়।
2.4. Using Pairs in Functions
Tuples (pairing elements) ফাংশনের আর্গুমেন্ট বা রিটার্ন ভ্যালু হিসেবে খুবই উপকারী। এখানে একটি উদাহরণ দেওয়া হল যেখানে একটি ফাংশন দুটি উপাদান গ্রহণ করে এবং তাদের যোগফল প্রদান করে:
addPair :: (Int, Int) -> Int
addPair (x, y) = x + yএখানে, addPair ফাংশনটি একটি Pair গ্রহণ করে (যেটি দুটি Int টাইপের উপাদান ধারণ করে) এবং তাদের যোগফল প্রদান করে।
3. Tuples and Pairing with Lists
হ্যাসকেল এ Tuple এবং Lists একত্রে ব্যবহার করা যায়। এটি হ্যাসকেলের একটি শক্তিশালী বৈশিষ্ট্য যা একাধিক মানের সংমিশ্রণ এবং বিভিন্ন ডেটা টাইপের উপাদানকে একত্রিত করতে সাহায্য করে।
উদাহরণ:
listOfPairs :: [(Int, String)]
listOfPairs = [(1, "One"), (2, "Two"), (3, "Three")]এখানে, listOfPairs একটি লিস্ট, যেখানে প্রতিটি উপাদান একটি Pair (Tuple) ধারণ করছে। প্রতিটি Tuple এর প্রথম উপাদান একটি Int এবং দ্বিতীয় উপাদান একটি String।
4. Practical Example of Pairing Elements
ধরা যাক, আপনি একটি প্রোগ্রাম লিখছেন যা বিভিন্ন নামের পাশে তাদের বয়সের মান ধারণ করবে। আপনি Pair ব্যবহার করে নাম এবং বয়সকে একটি Tuple আকারে সংরক্ষণ করতে পারেন:
nameAgePair :: (String, Int)
nameAgePair = ("John", 25)এখানে, "John" এবং 25 একটি Tuple আকারে একত্রিত করা হয়েছে। এটি নাম এবং বয়সের একটি Pair হিসেবে কাজ করে।
5. Conclusion
- Tuples হল একটি ডেটা স্ট্রাকচার যা একাধিক মান ধারণ করতে সক্ষম, এবং এটি এক বা একাধিক টাইপের হতে পারে।
- Pairing একটি সাধারণ কৌশল যেখানে দুটি উপাদানকে একত্রিত করা হয় এবং এটি একটি Tuple আকারে সংরক্ষণ করা হয়।
- Haskell এ Pattern Matching এবং Recursion এর মাধ্যমে Tuple এর উপাদানগুলি অ্যাক্সেস করা যায়।
- List of Pairs ব্যবহারের মাধ্যমে একাধিক Pair বা Tuple ধারণ করা সম্ভব, যা কোডের স্থিতিশীলতা এবং কার্যকারিতা বাড়ায়।
এই বৈশিষ্ট্যগুলি Haskell এ তথ্য সংগঠিত এবং প্রক্রিয়া করার একটি শক্তিশালী উপায়।
Read more